package com.my.study.springframework.context.event;

import com.my.study.springframework.context.ApplicationEvent;
import com.my.study.springframework.context.ApplicationListener;

/**
 * @author: yidujun
 * @create: 2021/07/12 19:39
 */
public interface ApplicationEventMulticaster {

    /**
     * 添加一个监听器来接收所有事件的通知
     *
     * @param listener the listener to add
     */
    void addApplicationListener(ApplicationListener<?> listener);

    /**
     * 从通知列表中删除监听器
     *
     * @param listener 要移除的监听器
     */
    void removeApplicationListener(ApplicationListener<?> listener);

    /**
     * 将给定的应用程序事件多播到适当的侦听器
     *
     * @param event 要多播的事件
     */
    void multicastEvent(ApplicationEvent event);

}
